home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 3
/
Gold Medal Software - Volume 3 (Gold Medal) (1994).iso
/
prog
/
dnalib59.arj
/
DNADEMO.BAS
< prev
next >
Wrap
BASIC Source File
|
1994-02-14
|
13KB
|
398 lines
$INCLUDE "DNALIB.INC"
$LINK "DNALIB.PBL"
HelpTextColor% = 14
HelpAttr% = 79
IF MouseThere% THEN Mouse% = 1
DIM FDirectory$(500)
DIM FileName$(100)
DIM About$(15)
DIM Help$(19)
HorzMenu$(1) = "@Miscellaneous" :HorzMenu$(2) = "Line@Editor"
HorzMenu$(3) = "Sc@reen" :HorzMenu$(4) = "@Help"
VertMenu1$(1) = "@New" :VertMenu1$(2) = "@Future" :VertMenu1$(3) = "@Quit"
VertInfo1$(1) = "New Routines in DNALIB" :VertInfo1$(2) = "Plans for Future"
VertInfo1$(3) = "Quit DNALIB & Demo of Ask Routine"
VertMenu2$(1) = "@UPPER CASE" :VertMenu2$(2) = "@Mixed Case"
VertMenu2$(3) = "@lower case" :VertMenu2$(4) = "@Numbers"
VertMenu2$(5) = "@Any"
VertInfo2$(1) = "Demo of LineEdit (UPPER CASE) Routine"
VertInfo2$(2) = "Demo of LineEdit (Mixed Case) Routine"
VertInfo2$(3) = "Demo of LineEdit (lower case) Routine"
VertInfo2$(4) = "Demo of LineEdit (Numbers) Routine"
VertInfo2$(5) = "Demo of LineEdit (All Characters) Routine"
VertMenu3$(1) = "@Popwind" :VertMenu3$(2) = "@Dialog"
VertMenu3$(3) = "Scrol@box" :VertMenu3$(4) = "@Scroll"
VertMenu3$(5) = "Save & @Restore" :VertMenu3$(6) = "@Moveable Window"
VertInfo3$(1) = "Demo of Popwind Routine" :VertInfo3$(2) = "Demo of Dialog Routine"
VertInfo3$(3) = "Demo of Scrolbox Routine" :VertInfo3$(4) = "Demo of Scroll Routine"
VertInfo3$(5) = "Demo of SaveRest Routine" :VertInfo3$(6) = "Demo of Movewin & Typwrite Routine"
VertMenu4$(1) = "@Help" :VertMenu4$(2) = "About @DNALIB"
VertInfo4$(1) = "Demo of Scrolbox"
VertInfo4$(2) = "Demo of Multi line Dialog Box"
Future$(1) = "I plan to add the following routines"
Future$(2) = "Erik's PBWrite with pulldown menu"
Future$(3) = "and some general routines"
About$(1) = "DNA Library for PowerBASIC version 3"
About$(2) = "by Chris Foot"
About$(3) = " "
About$(4) = "DNALIB is totally free and comes with source code"
About$(5) = "for you to modify to your own needs. Please dont"
About$(6) = "distribute modified copies of DNALIB, if you find"
About$(7) = "a bug please let me know. If you have any ideas"
About$(8) = "for improvements, or routines for the library. "
About$(9) = " "
About$(10) = "I can be reached on BASNET in the PowerBASIC echo"
About$(11) = "or at this address "
About$(12) = " 15305 - 117 avenue"
About$(13) = " Edmonton, Alberta"
About$(14) = "FAX (403)452-5969 CANADA, T5M 3X4"
Help$(1) = "Scrolling Box Demo"
Help$(2) = "=================="
Help$(3) = "By passing a value of 1 to Scrolling%"
Help$(4) = "you can use SCROLBOX in this manner,"
Help$(5) = "SCROLBOX will size to the longest line"
Help$(6) = "and except a default number of rows"
Help$(7) = "to display, but will fall back to the"
Help$(8) = "number of elements available to it,"
Help$(9) = "to see this in action place DNADEMO.EXE"
Help$(10) = "somewhere in your PATH and run it from"
Help$(11) = "a directory with three or four files in it"
Help$(12) = "and then run the Scrollbox demo under the"
Help$(13) = "Screen choice, then repeat from a directory"
Help$(14) = "with at least twenty files and compare ;)"
Help$(15) = "SCROLBOX will also centre itself on the"
Help$(16) = "screen for you, or let you define a row and"
Help$(17) = "column to start from. It will also centre"
Help$(18) = "the text within the box for you ;)"
SCREEN 0
TopRow% = 1
Marker% = 99
COLOR 0,3
LOCATE 3,1,0
A$ = REPEAT$(80," DNA for PowerBASIC 3")
PRINT A$
COLOR 14,0
LOCATE 2,1,0
PRINT STRING$(80,205);
LOCATE 24,1,0
PRINT STRING$(80,205);
COLOR 0,7
LOCATE 25,1,0
PRINT SPACE$(80);
DO
HORIZONTALMENU HorzMenu$(),BarSave$,HiLight%,Mouse%,HPointer%,4,112,15,TopRow%,4,Marker%
SELECT CASE HPointer%
CASE 1 'Miscellaneous
VERTICALMENU VertMenu1$(),VertInfo1$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
IF LEN(VRtrn$) THEN
SELECT CASE VRtrn$
CASE "New"
BROWSE "DNA.DOC",Mouse%,14,7,17,18,63,31,1,2
CASE "Future"
DIALOG Future$(),VRtrn$ + " Features",Mouse%,3,0,0,4,112,1,1
CASE "Quit"
Rtrn% = 0
ASK "Quit DNALIB Demo",Mouse%,Rtrn%,10,15,0,158,1,2
IF Rtrn% = 0 THEN
VRtrn$ = VRtrn$
ELSE
VRtrn$ = ""
END IF
END SELECT
END IF
CASE 2 'Edit
VERTICALMENU VertMenu2$(),VertInfo2$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
IF LEN(VRtrn$) THEN
SAVESCREEN BaseScreen$,1,1,25,80,0
LOCATE 25, 8, 0
PRINT "Editing Keys = INSERT DEL ESC HOME END BACKSPACE ARROWKEYS";
SELECT CASE VRtrn$
CASE "UPPER CASE"
Allow$ = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Text$ = " "
Title$ = VRtrn$ + " Only"
Fill% = 176 :Row% = 12 :Col% = 20
POPWIND Title$,11,18,13,62,112,1,1
LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
CASE "Mixed Case"
Allow$ = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
Text$ = " "
Title$ = VRtrn$ + " Characters"
Fill% = 176 :Row% = 12 :Col% = 20
POPWIND Title$,11,18,13,62,112,1,1
LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
CASE "lower case"
Allow$ = " abcdefghijklmnopqrstuvwxyz"
Text$ = " "
Title$ = VRtrn$ + " Only"
Fill% = 176 :Row% = 12 :Col% = 20
POPWIND Title$,11,18,13,62,112,1,1
LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
CASE "Numbers"
Allow$ = "1234567890"
Text$ = " "
Title$ = VRtrn$ + " Only"
Fill% = 176 :Row% = 12 :Col% = 20
POPWIND Title$,11,18,13,62,112,1,1
LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
CASE "Any"
Allow$ = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=`~!@#$%^&*()_+}{[]:;'?><,./\|"
Text$ = " "
Title$ = VRtrn$ + " Characters"
Fill% = 176 :Row% = 12 :Col% = 20
POPWIND Title$,11,18,13,62,112,1,1
LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
END SELECT
RESTORESCREEN BaseScreen$,1,1
Mess$(1) = "You Entered >" + RTRIM$(Text$) + "<"
DIALOG Mess$(),VRtrn$,Mouse%,1,0,0,4,112,1,1
END IF
CASE 3 'Screen
VERTICALMENU VertMenu3$(),VertInfo3$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
IF LEN(VRtrn$) THEN
SELECT CASE VRtrn$
CASE "Popwind"
SAVESCREEN BaseScreen$,1,1,25,80,0
tr% = 12 :lc% = 28 :br% = 14 :rc% = 53
FOR i% = 1 TO 10
POPWIND "",tr%,lc%,br%,rc%,112,0,1
DECR tr% :INCR br% :DECR lc%,3 :INCR rc%,3
FOR j% = 1 TO 10000
NEXT j%
NEXT i%
DELAY .5
FOR l% = 1 TO 2
FOR k% = 1 TO 5
fg% = 15 :bg% = k% :bdr% = k% :shd% = 0
IF l% = 2 THEN shd% = 1
MakeByte DAttr%,fg%,bg%
POPWIND "",5,14,21,68,DAttr%,shd%,bdr%
DELAY .6
NEXT k%
NEXT l%
DELAY .6
tr% = 3 :lc% = 1 :br% = 23 :rc% = 80
FOR i% = 1 TO 10
POPWIND "",tr%,lc%,br%,rc%,112,0,1
INCR tr% :DECR br% :INCR lc%,3 :DECR rc%,3
FOR j% = 1 TO 2000
NEXT j%
NEXT i%
RESTORESCREEN BaseScreen$,1,1
CASE "Dialog"
DMess$(1) = "Dialog will dynamicaly size to the message you want to"
DMess$(2) = "display. And will allow you either to centre it on the"
DMess$(3) = "screen or place it anywhere you like."
DMess$(4) = "It will centre the text in the box for you as well."
DMess$(5) = "Dialog saves the area under the box and then waits"
DMess$(6) = "for a key press before it restores the screen."
DIALOG DMess$(),"Dialog box Demo",Mouse%,1,0,0,0,116,1,1
DELAY .2
DIALOG DMess$(),"Dialog box Demo",Mouse%,2,4,4,0,116,1,1
DELAY .2
DIALOG DMess$(),"Dialog box Demo",Mouse%,3,0,0,0,116,1,1
CASE "Scrolbox"
i% = 1
FDirectory$(i%) = DIR$("*.*",16)
DO
INCR i%
FDirectory$(i%) = DIR$
IF i% = 500 THEN EXIT LOOP
LOOP WHILE FDirectory$(i%) <> ""
SCROLLBOX FDirectory$(),TagList$,"Files",Mouse%,10,4,1,0,15,14,31,0,0,1,2
IF TagList$ = "" THEN
Mess$(1) = "You Pressed ESC key"
DIALOG Mess$(),"",Mouse%,1,0,0,4,112,1,1
ELSEIF TagList$ = "EMPTY" THEN
Mess$(1) = "No Files Tagged"
DIALOG Mess$(),"",Mouse%,1,0,0,4,112,1,1
ELSE
a% = 0
Tag% = 4
Temp$ = LTRIM$(TagList$,CHR$(Tag%))
DO
INCR a%
b% = INSTR(Temp$,ANY CHR$(Tag%))
IF b% = 0 THEN
FileName$(a%) = Temp$
ELSE
FileName$(a%) = LEFT$(Temp$,b% - 1)
END IF
Temp$ = LTRIM$(Temp$,FileName$(a%))
Temp$ = LTRIM$(Temp$,CHR$(Tag%))
LOOP UNTIL FileName$(a%) = ""
IF a% THEN
FOR i% = 1 TO a%
BROWSE FileName$(i%),Mouse%,14,5,5,20,75,31,1,2
NEXT i%
END IF
END IF
CASE "Scroll"
SCROLL "Scroll a message in both Directions ",1,0,25,112
SCROLL "Scroll a message in both Directions ",1,1,25,112
CASE "Save & Restore"
SAVESCREEN BaseScreen$,1,1,25,80,0
DELAY .5
SAVESCREEN Screen1$,4,2,12,39,0
POPWIND "Window 1",4,2,12,39,78,0,1
SAVESCREEN Window1$,4,2,12,39,0
DELAY .5
SAVESCREEN Screen2$,4,42,12,79,0
POPWIND "Window 2",4,42,12,79,31,0,2
SAVESCREEN Window2$,4,42,12,79,0
DELAY .5
SAVESCREEN Screen3$,14,2,22,39,0
POPWIND "Window 3",14,2,22,39,44,0,3
SAVESCREEN Window3$,14,2,22,39,0
DELAY .5
SAVESCREEN Screen4$,14,42,22,79,0
POPWIND "Window 4",14,42,22,79,110,0,4
SAVESCREEN Window4$,14,42,22,79,0
DELAY .5
SAVESCREEN Screen5$,5,5,21,77,0
POPWIND "Window 5",5,5,21,77,14,0,2
SAVESCREEN Window5$,5,5,21,77,0
DELAY .5
RESTORESCREEN Screen5$,5,5
DELAY .5
RESTORESCREEN Screen4$,14,42
DELAY .5
RESTORESCREEN Screen1$,4,2
DELAY .5
RESTORESCREEN Screen3$,14,2
DELAY .5
RESTORESCREEN Screen2$,4,42
DELAY .5
FOR i% = 1 TO 5
RESTORESCREEN Window1$,4,2
RESTORESCREEN Window2$,4,42
RESTORESCREEN Window3$,14,2
RESTORESCREEN Window4$,14,42
DELAY .1
RESTORESCREEN Window2$,4,2
RESTORESCREEN Window3$,4,42
RESTORESCREEN Window4$,14,2
RESTORESCREEN Window1$,14,42
DELAY .1
RESTORESCREEN Window3$,4,2
RESTORESCREEN Window4$,4,42
RESTORESCREEN Window1$,14,2
RESTORESCREEN Window2$,14,42
DELAY .1
RESTORESCREEN Window4$,4,2
RESTORESCREEN Window1$,4,42
RESTORESCREEN Window2$,14,2
RESTORESCREEN Window3$,14,42
DELAY .1
RESTORESCREEN Window1$,4,2
RESTORESCREEN Window2$,4,42
RESTORESCREEN Window3$,14,2
RESTORESCREEN Window4$,14,42
DELAY .1
NEXT i%
RESTORESCREEN Window5$,5,5
DELAY .5
RESTORESCREEN Window2$,4,42
DELAY .5
RESTORESCREEN Window5$,5,5
DELAY .5
RESTORESCREEN Window1$,4,2
DELAY .5
RESTORESCREEN Window5$,5,5
DELAY .5
RESTORESCREEN Window4$,14,42
DELAY .5
RESTORESCREEN Window5$,5,5
DELAY .5
RESTORESCREEN Window3$,14,2
DELAY .5
RESTORESCREEN Window5$,5,5
DELAY .5
SAVESCREEN Corner1$,4,2,12,39,0
SAVESCREEN Corner2$,4,42,12,79,0
SAVESCREEN Corner3$,14,2,22,39,0
SAVESCREEN Corner4$,14,42,22,79,0
RESTORESCREEN Corner4$,4,2
RESTORESCREEN Corner1$,14,42
RESTORESCREEN Corner2$,14,2
RESTORESCREEN Corner3$,4,42
DELAY 2
RESTORESCREEN BaseScreen$,1,1
CASE "Moveable Window"
DEF SEG = &HB800
BaseScreen$ = PEEK$(0,4000)
POPWIND "Moveable Window",10,25,15,54,31,0,1
DELAY .5
TYPWRITE "Add some text",11,34,31
TYPWRITE "use ARROW KEYS to move",12,29,31
TYPWRITE "window, hit enter to end",13,28,31
TYPWRITE "Moveable window demo",14,30,31
SAVESCREEN Window1$,10,25,15,54,0
MOVEABLEWINDOW BaseScreen$,Window1$,10,25
DELAY .5
Rtrn% = 0
Text$ = "Do you want to leave the window on screen"
ASK Text$,Mouse%,Rtrn%,10,15,0,158,1,2
IF Rtrn% > 0 THEN
DEF SEG = &HB800
POKE$ 0,BaseScreen$
DEF SEG
END IF
END SELECT
END IF
CASE 4 'Help
VERTICALMENU VertMenu4$(),VertInfo4$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
IF LEN(VRtrn$) THEN
SELECT CASE VRtrn$
CASE "Help"
ScrollBox Help$(),Rtrn$,VRtrn$,Mouse%,7,0,3,1,14,HiAttr%,31,0,0,1,1
CASE "About DNALIB"
DIALOG About$(),"",Mouse%,3,0,0,1,112,1,1
END SELECT
END IF
END SELECT
HiLight% = 1
IF Been% = 0 THEN
DIALOG About$(),"",Mouse%,3,0,0,1,112,1,1
Been% = 1
END IF
LOOP UNTIL VRtrn$ = "Quit"
DELAY .5
COLOR 7,0
CLS
END